//package baseFx.common.mq.rabbitmq;
//
//import org.apache.commons.pool2.BasePooledObjectFactory;
//import org.apache.commons.pool2.PooledObject;
//import org.apache.commons.pool2.impl.DefaultPooledObject;
//
//public class ChannelPOFactory extends BasePooledObjectFactory<MqChannel> {
//    private MqConnection connection;
//
//    public ChannelPOFactory(MqConnection connection) {
//        this.connection = connection;
//    }
//
//    @Override
//    public PooledObject<MqChannel> makeObject() throws Exception {
//        return super.makeObject();
//    }
//
//    @Override
//    public MqChannel create() throws Exception {
//        return new MqChannel(connection.baseCreateChannel(), connection);
//    }
//
//    @Override
//    public PooledObject<MqChannel> wrap(MqChannel mqChannel) {
//        return new DefaultPooledObject<>(mqChannel);
//    }
//
//    @Override
//    public void destroyObject(PooledObject<MqChannel> p) throws Exception {
//        p.getObject().destroy();
//    }
//
//    @Override
//    public boolean validateObject(PooledObject<MqChannel> p) {
//        return p.getObject().isOpen();
//    }
//}
